There has been used a distributed storage system which implements a system in which a plurality of computers (referred to as data nodes or simply “nodes”) are network-connected to utilize data stored in a data storage unit (HDD (Hard Disk Drive), memory or the like) of the respective computers.
In general distributed storage technology, decisions are implemented by software, special dedicated hardware or the like, concerning:
which computer (node) should data be disposed in, and
which computer (node) should processing be performed on.
In a distributed storage system, an operation of the system is dynamically modified in accordance with a state of the system to adjust resource usage amount in the system, thereby improving performance for a system user (client computer).
In a distributed storage system, since data is dispersed in a plurality of nodes, a client that is going to access data has to know which node hold the data in question. When there are multiple nodes holding the data in question, the client that is going to access the data has to know which node (one and more) to access.
In a distributed storage system, with regard to file management, a scheme is generally used in which a file main body and meta data (storage location of the file, file size, owner and so forth) of the file in question are stored separately.
In a distributed storage system, a meta-server scheme is known as one technology for a client to identify a node holding the data. In the meta-server scheme, there is provided a meta-server configured by one or a plurality (but a small number) of computers to manage location information of data. However, in a distributed storage system of a meta-server scheme, with an increase in size of a system configuration, processing performance of the meta-server that performs processing to detect the location of a node holding the data is insufficient (the number of nodes managed by one meta-server becomes very large, and the processing performance of the meta-server in question cannot keep up), and there is a possibility of a bottleneck in access performance with regard to the meta-server that has been introduced.
<Distributed KVS>
Another method (technique) to identify a location of a node holding data is to obtain the location of the data using a distribution function (for example, a hash function). This type of method is used, for example, in distributed KVS (Key Value Store). Distributed KVS may be regarded as a type of distributed storage system in which a plurality of nodes are configured to implement a storage function of a simple data model, formed of an associative array as in a pair: “Key” and “Value”. In the distributed storage system (referred to as a distributed KVS scheme) based on the distributed KVS technique, all clients share a distribution function and a list of nodes participating in the system (node list). Stored data is divided into data fragments (Value) of fixed length or arbitrary length. An identifier by which a data value in question can be uniquely specified is attached to each data fragment, and location of a data fragment is determined using the identifier and the distribution function. For example, since nodes (servers) at storage destinations differ in accordance with key values by a hash function, it is possible to store data in distributed manner in a plurality of nodes. When distribution functions are the same, storage destinations based on the same key are always the same, so that an accessing client can easily comprehend the data access destination. In a concise distributed KVS scheme, a Key is used as an identifier, and by having a Value corresponding to the Key as a unit of stored data, a data access function based on Key and Value is implemented.
In a distributed storage system based on the distributed KVS technique, when accessing data, clients each have a key as an input value of the distribution function, and based on an output value of the distribution function and the node list, arithmetically obtain a location of a node storing the data.
In a distributed storage system based on the distributed KVS technique, among information shared between clients, a distribution function basically do not change with an elapse of time (time invariant). On the other hand, content of a node list changes at any time accompanying a failure or addition of a node. As a result, it is necessary for a client to be able to access these items of information by an arbitrary method.
<Replication>
In a distributed storage system, it is generally performed that a plurality of nodes hold replicas of data and utilize the replicas of data for load balancing, in order to ensure availability (ability of a system to operate continuously).
It is to be noted that Patent Literature 1 discloses technology implementing load balancing using replication of created data. Patent Literature 2 discloses a configuration in which a server comprises an information structure definition unit to define an information structure definition entity, and a registering client builds a database according to the information structure definition entity, generates a database access tool, and uses this tool to register information in the database. Patent Literature 3 discloses a configuration in which a distributed storage system includes storage nodes that store replicated objects capable of being accessed via a locator value specific to each of the respective replicas, and a key map instance that stores each key map entry corresponding to each of respective objects, wherein each key map entry for a prescribed object include a replica of the object, a corresponding key value, and each locator. Patent Literature 4 (whose joint inventors include an inventor of the present application) discloses CDP (Continuous Data Protection) in which each time data is updated, modified content thereof is stored in time series, and data written to storage is tracked and captured. When a data update occurs, by journaling of modified content thereof to a secondary storage (change history database), it is possible to replicate data at any time in the past (Any Point In Time (APIT) Recovery), and it is possible to avoid data loss. Patent Literature 4 discloses a storage system equipped with a data protection function in which, when data is updated, recording change content as a log in time series, data at a point in time in the past is restorable; and as a result of analysis of history information of access to storage, and/or based on information notified from outside, a preset triggeror trigger for data access is extracted, and data corresponding to the preset triggeror trigger extracted is created from log information and data stored and held in the storage, and the created data is stored in the storage as data corresponding to the prescribed timing.